package com.seed.uaa.util;

public class RelationUtil {

//    private static void a(Relation relation, String var) {
//        String[] condition = relation.getCondition();
//        if(condition == null) return;
//
//        List<QueryCondition> queryConditions = new ArrayList<>();
//        for(String item: condition) {
//            String[] columnOpValue = StrKit.splitCondition(item);
//            String op = columnOpValue[1];
//            try {
//                SqlOp.valueOf(op);
//            } catch (IllegalArgumentException e) {
//                throw new RuntimeException(String.format("条件【%s】里的操作【%s】不合法, 必需是%s之一", item, op, Arrays.toString(SqlOp.values())));
//            }
//
//            String column = columnOpValue[0];
//            String[] ownerAndColumn = StrKit.cutInTwo(column, '.', true);
//            String owner = ownerAndColumn[0];
//            List<String> candidateOwners = List.of("self", "target", "through", var, "");
//            if(!candidateOwners.contains(owner)) {
//                throw new RuntimeException(String.format("条件【%s】里的前缀【%s】不合法, 必需是%s之一", item, owner, candidateOwners));
//            }
//
//            SeedContext context = SeedManager.get();
//            String finalColumn = ownerAndColumn[1];
//            if("self".equals(owner) || "".equals(owner)) {
//                Class<?> selfEntityClass = relation.getSelfEntityClass();
//                List<String> columnNames = context.getColumnNames(selfEntityClass);
//                if(!columnNames.contains(finalColumn)) {
//                    throw new RuntimeException(String.format("【%s】中不存在列【%s】", selfEntityClass.getSimpleName(), finalColumn));
//                }
//            } else if ("target".equals(owner) || var.equals(owner)) {
//                Class<?> targetEntityClass = relation.getTargetEntityClass();
//                List<String> columnNames = context.getColumnNames(targetEntityClass);
//                if(!columnNames.contains(finalColumn)) {
//                    throw new RuntimeException(String.format("【%s】中不存在列【%s】", targetEntityClass.getSimpleName(), finalColumn));
//                }
//            } else if(relation instanceof HasOnes) {
//
//            }
//
//
//            String value = columnOpValue[2];
//        }
//
//
//
//    }

//    private void a(Class<?> entityClass, String finalColumn) {
//        List<String> columnNames = SeedManager.get().getColumnNames(entityClass);
//        if(!columnNames.contains(finalColumn)) {
//            throw new RuntimeException(String.format("【%s】中不存在列【%s】", entityClass.getSimpleName(), finalColumn));
//        }
//    }

    public static void main(String[] args) {
//        a("bb.name_like=1, name_bb=2", "organization");
    }
}
